Field of Invention
The present invention relates generally to the field of data communications, and relates more particularly systems and methods of switching fabric data flow control in a network environment.
Description of the Related Art
When a large switching device is built using many smaller switching devices, a switch fabric may be a Clos architectural fabric organized in a leaf-spine topology. The switch fabric may include connections of the smaller switching devices configured as leaf nodes and spine nodes according to the leaf-spine topology. Input/Output (I/O) ports residing on the switching devices may receive data from other computing devices in a network. Upon receiving the data, the switch fabric may process the data in leaf nodes and spine nodes. And the I/O ports may then send the processed data to the network.
In a leaf-spine topology, it is possible for multiple ingress ports at a leaf node to send traffic to a common egress port on a destination leaf node. As a result, it is possible to have oversubscription at the common destination port. Oversubscription is a common occurrence in packet networks. The assumption is that different data flows generated by different users may require higher rate of utilization at different times, thus creating an opportunity to employ statistical multiplexing, improve the system utilization, and reduce the overall costs. However, this may result in temporary oversubscription of resources, and for this approach to succeed, it must not sacrifice the quality of service the end user expects, and therefore, must address issues such as congestion and proper handling of different priority traffic flows. Especially, in a Clos fabric organized in a leaf-spine topology, it is possible for traffic destined to one output port to consume more than its fair share of the fabric resources through the spine node, only to get discarded at the destination leaf node.
Accordingly, there is a need to minimize the potential for wastage of resources in a leaf-spine switch fabric, reduce the internal fabric congestion, and ensure that traffic destined for a given output port has a good chance of being transmitted out of the system before being allowed to consume resources in the switch fabric.